## Домашнее задание к занятию «Системы контроля версий» - Лебедев Сергей - DevOps-34
### Цель задания
#### В результате выполнения задания вы:

научитесь подготоваливать новый репозиторий к работе;
сохранять, перемещать и удалять файлы в системе контроля версий.
Чеклист готовности к домашнему заданию
Установлена консольная утилита для работы с Git.
Инструкция к заданию
Домашнее задание выполните в GitHub-репозитории.
В личном кабинете отправьте на проверку ссылку на ваш репозиторий с домашним заданием.
Любые вопросы по решению задач задавайте в чате учебной группы.
Дополнительные материалы для выполнения задания
GitHub.
Инструкция по установке Git.
Книга про Git на русском языке - рекомендуем к обязательному изучению главы 1-7.
Задание 1. Создать и настроить репозиторий для дальнейшей работы на курсе
В рамках курса вы будете писать скрипты и создавать конфигурации для различных систем, которые необходимо сохранять для будущего использования. Сначала надо создать и настроить локальный репозиторий, после чего добавить удалённый репозиторий на GitHub.
_____________________________________________________________
#### Создание репозитория и первого коммита
Зарегистрируйте аккаунт на https://github.com/. Если предпочитаете другое хранилище для репозитория, можно использовать его.

Создайте публичный репозиторий, который будете использовать дальше на протяжении всего курса, желательное с названием devops-netology. Обязательно поставьте галочку Initialize this repository with a README.

Диалог создания репозитория

Создайте авторизационный токен для клонирования репозитория.

Склонируйте репозиторий, используя протокол HTTPS (git clone ...).

Клонирование репозитория

Перейдите в каталог с клоном репозитория (cd devops-netology).

Произведите первоначальную настройку Git, указав своё настоящее имя, чтобы нам было проще общаться, и email (git config --global user.name и git config --global user.email johndoe@example.com).

Выполните команду git status и запомните результат.

Отредактируйте файл README.md любым удобным способом, тем самым переведя файл в состояние Modified.

Ещё раз выполните git status и продолжайте проверять вывод этой команды после каждого следующего шага.

Теперь посмотрите изменения в файле README.md, выполнив команды git diff и git diff --staged.

Переведите файл в состояние staged (или, как говорят, просто добавьте файл в коммит) командой git add README.md.

И ещё раз выполните команды git diff и git diff --staged. Поиграйте с изменениями и этими командами, чтобы чётко понять, что и когда они отображают.

Теперь можно сделать коммит git commit -m 'First commit'.

И ещё раз посмотреть выводы команд git status, git diff и git diff --staged.
_____________________________________________________________
#### Создание файлов .gitignore и второго коммита
Создайте файл .gitignore (обратите внимание на точку в начале файла), проверьте его статус сразу после создания.
Добавьте файл .gitignore в следующий коммит (git add...).
На одном из следующих блоков вы будете изучать Terraform, давайте сразу создадим соотвествующий каталог terraform и внутри этого каталога — файл .gitignore по примеру: https://github.com/github/gitignore/blob/master/Terraform.gitignore.
В файле README.md опишите своими словами, какие файлы будут проигнорированы в будущем благодаря добавленному .gitignore.
Закоммитьте все новые и изменённые файлы. Комментарий к коммиту должен быть Added gitignore.
Эксперимент с удалением и перемещением файлов (третий и четвёртый коммит)
Создайте файлы will_be_deleted.txt (с текстом will_be_deleted) и will_be_moved.txt (с текстом will_be_moved) и закоммите их с комментарием Prepare to delete and move.
В случае необходимости обратитесь к официальной документации — здесь подробно описано, как выполнить следующие шаги.
Удалите файл will_be_deleted.txt с диска и из репозитория.
Переименуйте (переместите) файл will_be_moved.txt на диске и в репозитории, чтобы он стал называться has_been_moved.txt.
Закоммитьте результат работы с комментарием Moved and deleted.
Проверка изменения
В результате предыдущих шагов в репозитории должно быть как минимум пять коммитов (если вы сделали ещё промежуточные — нет проблем):
Initial Commit — созданный GitHub при инициализации репозитория.
First commit — созданный после изменения файла README.md.
Added gitignore — после добавления .gitignore.
Prepare to delete and move — после добавления двух временных файлов.
Moved and deleted — после удаления и перемещения временных файлов.
Проверьте это, используя комманду git log. Подробно о формате вывода этой команды мы поговорим на следующем занятии, но посмотреть, что она отображает, можно уже сейчас.
Отправка изменений в репозиторий
Выполните команду git push, если Git запросит логин и пароль — введите ваши логин и пароль от GitHub.

В качестве результата отправьте ссылку на репозиторий.

_____________________________________________________________
### Решение: 
#### Задание 1: Создать и настроить репозиторий для дальнейшей работы на курсе
- [x] Регистрация на сайте GitHub.com - выполнена. 
- [x] Создан репозиторий - DevOps-34: ссылка - https://github.com/li1s/DevOps-34
- [x] git config --global user.name Sergei.Lebedev 
- [x] git config --global user.email l1is@yahoo.com
- [x] git status
- [x] git diff  
- [x] git diff --staged
_____________________________________________________________

#### Задание 2: Создание файлов .gitignore и второго коммита
##### Создание файлов .gitignore и второго коммита
- [x] Создайте файл .gitignore
- [x] git status
- [x] Kаталог terraform и внутри этого каталога — файл .gitignore по примеру: https://github.com/github/gitignore/blob/master/Terraform.gitignore.


_____________________________________________________________________________
#### В файле README.md опишите своими словами, какие файлы будут проигнорированы в будущем благодаря добавленному .gitignore.

В файле .gitignore указаны паттерны для игнорирования файлов и директорий при работе с Git. В данном случае, следующие файлы и директории будут проигнорированы Git'ом:

    Все директории .terraform, включая поддиректории. (**/.terraform/*)
    Файлы с расширением .tfstate и .tfstate.*
    Файлы crash.log и crash.*.log
    Все файлы с расширением .tfvars и .tfvars.json
    Файлы override.tf, override.tf.json, *_override.tf и *_override.tf.json
    Конфигурационные файлы .terraformrc и terraform.rc

Таким образом, все эти файлы и директории не будут добавлены в репозиторий Git и не будут отслеживаться при выполнении команд Git, такие как git add или git commit. Это позволяет исключить из контроля версий файлы с конфиденциальной информацией или временные файлы, необходимые для работы Terraform.
_____________________________________________________________

### Результаты вывода команды git log: 

#### commit b33a5300bd8e4c75c9804686e69495fdb7230b86 (HEAD -> main, origin/main, origin/HEAD)
#### Author: Sergei.Lebedev <l1is@yahoo.com>
Date:   Thu Aug 24 16:08:23 2023 +0300

    Moved and deleted

#### commit 59897e0e2bd7c3242230f0903e1c95eda5a5e721
#### Author: Sergei.Lebedev <l1is@yahoo.com>
Date:   Thu Aug 24 16:07:26 2023 +0300

    Prepare to delete and move

#### commit abf59d86f22c074bcef1525dc708f2b8ddab4f1f
#### Author: Sergei.Lebedev <l1is@yahoo.com>
Date:   Thu Aug 24 16:05:41 2023 +0300

    Prepare to delete and move

#### commit 02810d18af5ce2e432141eb22c34a5c80550ec90
#### Author: Sergei.Lebedev <l1is@yahoo.com>
Date:   Thu Aug 24 16:04:42 2023 +0300

    Added gitignore

#### commit b3485fee821582813b2a63e505a623b58ae8e8fb
#### Author: Sergei.Lebedev <l1is@yahoo.com>
Date:   Thu Aug 24 16:03:40 2023 +0300

    Добавлен ответ на вопрос: В файле README.md опишите своими словами, какие файлы будут проигнорированы в будущем благодаря добавленному .gitignore.

#### commit f3fce9fcf6e4bfb32daa3e0a1dfb9143b27ec91f
#### Author: Sergei.Lebedev <l1is@yahoo.com>
Date:   Thu Aug 24 15:59:19 2023 +0300

    First commit

#### commit bdecae6d707a5cb2feff6c965ada1c898e5590c2
#### Author: Sergei.Lebedev <l1is@yahoo.com>
Date:   Thu Aug 24 11:56:53 2023 +0300

            new file:   "\320\241\320\270\321\201\321\202\320\265\320\274\321\213 \320\272\320\276\320\275\321\202\321\200\320\276\320\273\321\217 \320\262\320\265\321\200\321\201\320\270\320\271/.gitignore"
            modified:   "\320\241\320\270\321\201\321\202\320\265\320\274\321\213 \320\272\320\276\320\275\321\202\321\200\320\276\320\273\321\217 \320\262\320\265\321\200\321\201\320\270\320\271/README.md"
            new file:   "\320\241\320\270\321\201\321\202\320\265\320\274\321\213 \320\272\320\276\320\275\321\202\321\200\320\276\320\273\321\217 \320\262\320\265\321\200\321\201\320\270\320\271/Terraform/.gitignore"
    Added gitignore
    Create dir Terraform
    Create gitignore on Terraform

    